# 【练习】图书管理系统
# 编写一个Python程序: - 创建一个图书管理系统，实现以下功能：
# 1. 图书类 Book：属性包括书名（title）、作者（author）和出版日期（publish_date），方法包括获取书名、获取作者和获取出版日期的方法。
# 2. 图书馆类 Library：属性包括图书列表（books），方法包括添加图书、借出图书、归还图书和显示所有图书的方法。
# 3. add_book 方法：接受一个 Book 类型的参数，将其添加到图书列表中。
# 4. borrow_book 方法：接受一个字符串类型的参数（书名），找到对应书名的图书，并将其从图书列表中移除。
# 5. return_book 方法：接受一个 Book 类型的参数，将其添加到图书列表中。
# 6. show_books 方法：输出当前图书馆中所有图书的书名、作者和出版日期。

class Book:
    def __init__(self,title,author,publish_date):
        self.title = title
        self.author = author
        self.publish_date = publish_date
    def get_title(self):
        return self.title
    def get_author(self):
        return self.author
    def get_publish_date(self):
        return self.publish_date
class Livrary:
    def __init__(self):
        self.book_list = []
    def add_book(self,Book):
        self.book_list.append(Book)
    def borrow_book(self, title):
        for book in self.book_list:
            if book.get_title() == title:
                self.book_list.remove(book)
                return book

    def return_book(self,Book):
        self.book_list.append(Book)
    def show_books(self):
        for item in self.book_list:
            print(f"书名:{item.get_title()}",f"作者:{item.get_author()}",f"出版日期:{item.get_publish_date()}",sep="\t")

if __name__ == "__main__":
    book1 = Book("python","py作者",2024)
    book2 = Book("java", "j作者", 2023)
    livrary = Livrary()

    livrary.add_book(book1)
    livrary.add_book(book2)
    livrary.show_books()

    print(f"""删除{livrary.borrow_book("python").get_title()}""")
    livrary.show_books()

    print(f"归还{book1.get_title()}")
    livrary.return_book(book1)
    livrary.show_books()

